package com.genesis.yunnanji.view;

import android.content.Intent;
import android.support.annotation.Nullable;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.widget.EditText;

import com.genesis.yunnanji.R;
import com.genesis.yunnanji.adapter.FullyGridLayoutManager;
import com.genesis.yunnanji.adapter.GridImageAdapter;
import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import com.youth.xframe.widget.XStateButton;

import java.util.LinkedHashMap;
import java.util.List;

import butterknife.BindView;
import butterknife.OnClick;

/**
 * 创建日期：2018/9/25 on 16:04
 * 作者:Kite
 * 描述:意见反馈
 */
public class FeedbackActivity extends BaseActivity {

    @BindView(R.id.et_feedback)
    EditText etFeedback;

    @BindView(R.id.et_contact)
    EditText etContact;

    @BindView(R.id.rv_content)
    RecyclerView rvContent;

    @BindView(R.id.xb_submit)
    XStateButton xbSubmit;

    private GridImageAdapter adapter;

    private int maxSelectNum = 9;

    private LinkedHashMap<Integer, String> errorMap = new LinkedHashMap<>();

    @Override
    public int getLayoutId() {
        return R.layout.activity_feedback;
    }

    @Override
    public void initView() {
        super.initView();
        setTitle("关于好物");
        editIsEmpty();
        FullyGridLayoutManager manager = new FullyGridLayoutManager(FeedbackActivity.this, 4, GridLayoutManager.VERTICAL, false);
        rvContent.setLayoutManager(manager);
        adapter = new GridImageAdapter(FeedbackActivity.this, onAddPicClickListener);
        adapter.setSelectMax(maxSelectNum);
        rvContent.setAdapter(adapter);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            switch (requestCode) {
                case 10001:
                    List<LocalMedia> selectList;
//                    if (selectList == null || selectList.size() == 0) {
//                        return;
//                    }
//                    String path = selectList.get(0).getCompressPath();
//
//                    Log.e("LK", path + "");
//                    Luban.with(this).load(path).setCompressListener(new OnCompressListener() {
//                        @Override
//                        public void onStart() {
//                        }
//
//                        @Override
//                        public void onSuccess(File file) {
//                            //uploadHeadIcon(file);
//                        }
//
//                        @Override
//                        public void onError(Throwable e) {
//                        }
//                    }).launch();

                    // 图片选择结果回调
                    selectList = PictureSelector.obtainMultipleResult(data);
                    // 例如 LocalMedia 里面返回三种path
                    // 1.media.getPath(); 为原图path
                    // 2.media.getCutPath();为裁剪后path，需判断media.isCut();是否为true
                    // 3.media.getCompressPath();为压缩后path，需判断media.isCompressed();是否为true
                    // 如果裁剪并压缩了，已取压缩路径为准，因为是先裁剪后压缩的
                    for (LocalMedia media : selectList) {
                        Log.i("图片-----》", media.getPath());
                    }
                    adapter.setList(selectList);
                    adapter.notifyDataSetChanged();

                    break;
            }
        }
    }

    @OnClick(R.id.xb_submit)
    public void onViewClicked() {

    }

    private void editIsEmpty() {
        TextWatcher feedbackWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                if (editable != null) {
                    String feedback = editable.toString().replace(" ", "");
                    if (!TextUtils.isEmpty(feedback)) {
                        errorMap.remove(1);
                        if (feedback.length() > 0) {
                            errorMap.remove(2);
                        } else {
                            errorMap.put(2, "请填写意见反馈");
                        }
                    } else {
                        errorMap.put(1, "请填写意见反馈");
                    }
                    changeClickable();
                }
            }
        };
        etFeedback.addTextChangedListener(feedbackWatcher);

        TextWatcher contactWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void afterTextChanged(Editable editable) {
                if (editable != null) {
                    String contact = editable.toString();
                    if (!TextUtils.isEmpty(contact)) {
                        errorMap.remove(3);
                        if (contact.length() >= 7) {
                            errorMap.remove(4);
                        } else {
                            errorMap.put(4, "请输入正确的联系方式");
                        }
                    } else {
                        errorMap.put(3, "请输入联系方式");
                    }
                    changeClickable();
                }
            }
        };
        etContact.addTextChangedListener(contactWatcher);
        errorMap.put(4, "请填写意见反馈");
        errorMap.put(1, "请输入联系方式");

        xbSubmit.setClickable(false);
        xbSubmit.setNormalBackgroundColor(getResources().getColor(R.color.color_ccc));
    }

    public void changeClickable() {
        if (errorMap.isEmpty()) {
            xbSubmit.setClickable(true);
            xbSubmit.setNormalBackgroundColor(getResources().getColor(R.color.colorTheme));
        } else {
            xbSubmit.setClickable(false);
            xbSubmit.setNormalBackgroundColor(getResources().getColor(R.color.color_ccc));
        }
    }

    private GridImageAdapter.onAddPicClickListener onAddPicClickListener = new GridImageAdapter.onAddPicClickListener() {
        @Override
        public void onAddPicClick() {
            PictureSelector.create(FeedbackActivity.this)
                    .openGallery(PictureMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()、音频.ofAudio()
//                .theme(R.style.style_picture_white)//主题样式(不设置为默认样式) 也可参考demo values/styles下 例如：R.style.picture.white.style
                    .maxSelectNum(5)// 最大图片选择数量 int
                    .minSelectNum(0)// 最小选择数量 int
                    .imageSpanCount(4)// 每行显示个数 int
                    .selectionMode(PictureConfig.MULTIPLE)// 多选 or 单选 PictureConfig.MULTIPLE or PictureConfig.SINGLE
                    .previewImage(true)// 是否可预览图片 true or false
                    .previewVideo(false)// 是否可预览视频 true or false
                    .enablePreviewAudio(false) // 是否可播放音频 true or false
                    .isCamera(true)// 是否显示拍照按钮 true or false
                    .imageFormat(PictureMimeType.PNG)// 拍照保存图片格式后缀,默认jpeg
                    .isZoomAnim(true)// 图片列表点击 缩放效果 默认true
                    .sizeMultiplier(0.5f)// glide 加载图片大小 0~1之间 如设置 .glideOverride()无效
//                .setOutputCameraPath(FileUtils.getAppDefPath(FileUtils.PATH_IMAGE))// 自定义拍照保存路径,可不填
                    .enableCrop(true)// 是否裁剪 true or false
                    .compress(true)// 是否压缩 true or false
                    // .glideOverride()// int glide 加载宽高，越小图片列表越流畅，但会影响列表图片浏览的清晰度
                    .withAspectRatio(1, 1)// int 裁剪比例 如16:9 3:2 3:4 1:1 可自定义
                    // .hideBottomControls()// 是否显示uCrop工具栏，默认不显示 true or false
                    // .isGif()// 是否显示gif图片 true or false
//                .compressSavePath(FileUtils.getAppDefPath(FileUtils.PATH_IMAGE))//压缩图片保存地址
                    .freeStyleCropEnabled(false)// 裁剪框是否可拖拽 true or false
                    .circleDimmedLayer(false)// 是否圆形裁剪 true or false
                    .showCropFrame(true)// 是否显示裁剪矩形边框 圆形裁剪时建议设为false   true or false
                    .showCropGrid(true)// 是否显示裁剪矩形网格 圆形裁剪时建议设为false    true or false
                    .openClickSound(false)// 是否开启点击声音 true or false
                    // .selectionMedia()// 是否传入已选图片 List<LocalMedia> list
                    // .previewEggs()// 预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中) true or false
                    // .cropCompressQuality()// 裁剪压缩质量 默认90 int
                    .minimumCompressSize(100)// 小于100kb的图片不压缩
                    .synOrAsy(true)//同步true或异步false 压缩 默认同步
                    // .cropWH()// 裁剪宽高比，设置如果大于图片本身宽高则无效 int
                    .rotateEnabled(true) // 裁剪是否可旋转图片 true or false
                    .scaleEnabled(true)// 裁剪是否可放大缩小图片 true or false
                    // .videoQuality()// 视频录制质量 0 or 1 int
                    //  .videoMaxSecond(15)// 显示多少秒以内的视频or音频也可适用 int
                    // .videoMinSecond(10)// 显示多少秒以内的视频or音频也可适用 int
                    // .recordVideoSecond()//视频秒数录制 默认60s int
                    .forResult(10001);//结果回调onActivityResult code
        }
    };

}
